home *** CD-ROM | disk | FTP | other *** search
/ Aminet 23 / Aminet 23 (1998)(GTI - Schatztruhe)[!][Feb 1998].iso / Aminet / dev / c / fortify22.lha / TEST.C < prev    next >
C/C++ Source or Header  |  1995-11-01  |  1KB  |  62 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "fortify.h"
  4.  
  5. /*
  6.  * NOTE: The Fortify routines will compile away to nothing
  7.  * if FORTIFY isn't defined in the makefile.
  8.  *
  9.  * DO NOT insert #define FORTIFY here. It Will Not Work.
  10.  * All files (including fortify.cxx) need FORTIFY to be
  11.  * defined. The correct place for this is the makefile.
  12.  */
  13.  
  14.  
  15. int
  16. main(int argc, char **argv)
  17. {                   
  18.     char *foo, *bar;
  19.    
  20.     Fortify_EnterScope();
  21.  
  22.     /* note that we never free this memory */
  23.     foo = malloc(123);
  24.  
  25.     Fortify_LabelPointer(foo, "we never free this memory!");
  26.  
  27.     /* note that we read this memory after it's been freed */    
  28.     foo = malloc(124);
  29.     *foo = 'X';
  30.     free(foo);
  31.     printf("Should be X: '%c'\n", *foo);
  32.  
  33.     /* note we've already freed this memory */    
  34.     free(foo);
  35.     
  36.     /* note we write to memory that's been realloc'd, using the old pointer */
  37.     foo = malloc(125);
  38.     bar = realloc(foo, 126);
  39.     *foo = 'X';
  40.     free(bar);    
  41.     
  42.     /* note we write before the block */
  43.     foo = malloc(127);
  44.     Fortify_LabelPointer(foo, "we write before this block!");
  45.     *(foo-1) = 'Z';
  46.     free(foo);
  47.     
  48.     /* note we write after the block */
  49.     bar = "I'm going to eat you little fishie!";
  50.     foo = malloc(strlen(bar));
  51.     strcpy(foo, bar);
  52.     free(foo);
  53.  
  54.     /* we never allocated this memory */
  55.     free(bar);    
  56.  
  57.     Fortify_LeaveScope();
  58.     Fortify_OutputStatistics(); 
  59.  
  60.     return 42;
  61. }
  62.